<?php

namespace app\common\service\qrcode;

use app\common\library\wechat\Qrcode;
use app\common\model\Wxapp as WxappModel;

/**
 * 二维码服务基类
 * Class Base
 * @package app\common\service\qrcode
 */
class Base{
    /**
     * 构造方法
     * Base constructor.
     */
    public function __construct(){
    }

    /**
     * 保存小程序码到文件
     */
    protected function saveQrcode($wxapp_id, $scene, $page = null){
        // 文件目录
        $dirPath = WEB_PATH . 'image' . '/' . $wxapp_id;
        !is_dir($dirPath) && mkdir($dirPath, 0755, true);
        // 文件名称
        $fileName = $wxapp_id.'_' . md5($wxapp_id . $scene . $page) . '.png';
        // 文件路径
        $savePath = "{$dirPath}/{$fileName}";
        // 请求api获取小程序码
        $Qrcode = new Qrcode('wxc60cec36d10a0bae', '2047743e99abc496c017e11ccc3ffe12');
        $content = $Qrcode->getQrcode($scene, $page);
        // 保存到文件
        file_put_contents($savePath, $content);
        $savePath="https://globalbt.cn/image/".$wxapp_id.'/'.$fileName;
        return $savePath;
    }

    /**
     * 保存微信二维码到文件
     */
    protected function saveWxQrcode($wxapp_id, $scene, $page = null){
        //文件目录
        header('Content-Type: image/png');
        $dirPath = RUNTIME_PATH . 'image' . '/' . $wxapp_id;
        !is_dir($dirPath) && mkdir($dirPath, 0755, true);
        //文件名称
        $fileName = 'qrcode_' . md5($wxapp_id . $scene . $page) . '.png';
        // 文件路径
        $savePath = "{$dirPath}/{$fileName}";

        if (file_exists($savePath)) return $savePath;
        // 小程序配置信息
        // 请求api获取小程序码
        require_once WEB_PATH . '../source/extend/phpqrcode/phpqrcode.php';
        $object = new \QRcode();
        $str=$scene;
        $object->png($str, $savePath, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=true);
        return $savePath;
    }

    /**
     * 获取网络图片到临时目录
     * @param $wxapp_id
     * @param $url
     * @param string $mark
     * @return string
     */
    protected function saveTempImage($wxapp_id, $url, $mark = 'temp')
    {
        //获取本地临时目录的地址
        $dirPath = RUNTIME_PATH . 'image' . '/' . $wxapp_id;

        !is_dir($dirPath) && mkdir($dirPath, 0755, true);
        $savePath = $dirPath . '/' . $mark . '_' . md5($url) . '.png';
        if (file_exists($savePath)) return $savePath;
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
        $img = curl_exec($ch);
        curl_close($ch);
        $fp = fopen($savePath, 'w');
        fwrite($fp, $img);
        fclose($fp);
        return $savePath;
    }

}